#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>

#define filename "log.txt"

int main()
{
    // 本应该向显示器输入内容，变为了向文件输入内容
    // dup2更改内容之后，底层不会知道，所以依旧执行
    
    // 系统调用open
    int fd = open(filename,O_CREAT | O_WRONLY | O_TRUNC,0666);
    if(fd < 0)
    {
        perror("open");
        return 1;
    }
    // 更改文件描述符newfd(第二个参数)对应的内容，即将newfd对应的内容改为oldfd(第一个参数)对应的内容
    dup2(fd,1);
    close(fd);
    const char *msg = "hello Linux\n";
    int cnt = 5;
    while(cnt)
    {
        // 系统调用write
        write(1,msg,strlen(msg));
        cnt--;
    }
    close(fd);
    return 0;
}
